1. Field of the Invention
The present invention generally relates to the Advanced Video Coding (AVC) file format and, more particularly, to the storage of AVC Parameter Sets in the AVC file format.
2. Background of the Invention
The Advanced Video Coding (AVC) file format provides support for both streaming media data over a network as well as local playback. The most common streaming servers use the Real Time Streaming Protocol (RTSP) along with the Session Description Protocol (SDP) as a control protocol for the set up and teardown of multimedia streaming sessions between clients and servers. Further, the Real Time Transport Protocol (RTP) is used as the protocol for data transport for the multimedia information between the servers and clients.
An AVC codec provides a means for decoupling specific information from the video stream that is relevant for more than one video frame. It is intended that this specific information be sent over a reliable transport protocol (such as, e.g., Transmission Control Protocol (TCP)), in addition to being sent over an unreliable transport protocol (such as, e.g., User Datagram Protocol (UDP)), embedded within the multimedia stream. This specific information combined together form a Parameter Set. An AVC Parameter Set may include information such as, for example: picture or image size; display window size; macro block allocation map; and so forth.
One or many Parameter Sets may exist for any given AVC video stream. The encoder and decoder should maintain an identical list of the Parameter Sets. Each slice header within the AVC video stream includes a code that indicates the Parameter Set to be used when decoding. Based on this code, the decoder can then determine which Parameter Set to use for proper decoding. Since the Parameter Sets are decoupled from the main video stream, it is possible and desirable to send them from a multimedia streaming server to a multimedia streaming client in an out-of-band fashion.
A description of a typical scenario of a streaming multimedia transaction will now be given. When a multimedia streaming client requests streaming multimedia from a server, an initial negotiation is typically done prior to the streaming. The initial negotiation sequence involves the client sending a request to the server to obtain information about a particular stream. Afterwards, the server sends a response to the client with the minimal necessary details required for receiving and decoding the stream. This initial negotiation is commonly done using a network protocol such as the Real Time Streaming Protocol (RTSP). The RTSP protocol can be used to send the Parameter Sets from the multimedia streaming server to the multimedia streaming client. However, due to the nature of the streaming server, for the streaming server to send the media dependent data to the client, the Parameter Sets must be stored in the file in a manner such that the streaming server does not know or care what type of multimedia file it is.
Accordingly, it would be desirable and highly advantageous to have a method for enabling the RTSP protocol of the multimedia streaming server to transport Parameter Sets in a media independent manner to the client.